package com.cisystem.system.domain;

import java.util.Date;

import com.cisystem.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.cisystem.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 文件浏览记录对象 ci_file_view_record
 *
 * @author xxx
 * @date 2024-08-06
 */
public class FileViewRecord extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    private String id;

    /**
     * 被支派人
     */
    private String fileAssignId;
    /**
     * 指派人
     */
    @Excel(name = "指派人")
    private Long sender;

    /**
     * 被支派人
     */
    private Long assignId;

    /**
     * 被指派人的部门id
     */
    private Long assignDeptId;
    /**
     * 被指派人的名称
     */
    @Excel(name = "被指派人的名称")
    private String assignName;

    /**
     * 被指派类型，部门或者用户
     */
    @Excel(name = "被指派类型，部门或者用户")
    private String assignType;

    /**
     * 文件id
     */
    private String fileId;

    /**
     * 文件名称
     */
    @Excel(name = "文件名称")
    private String fileName;

    /**
     * 文件路径
     */
    private String filePath;

    /**
     * 分配时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "分配时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date assignTime;

    /**
     * 文件类型
     */
    @Excel(name = "文件类型")
    private String fileType;

    /**
     * 查看状态
     */
    @Excel(name = "查看状态")
    private String viewStatus;

    /**
     * 紧急程度
     */
    @Excel(name = "紧急程度")
    private String level;

    /**
     * 到期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "到期时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date dueDate;

    @Excel(name = "email")
    private String email;

    private Integer overdueDays;

    private String deptName;

    /**
     * 浏览次数
     */
    private Integer viewCount;

    public String getFileAssignId() {
        return fileAssignId;
    }

    public void setFileAssignId(String fileAssignId) {
        this.fileAssignId = fileAssignId;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public void setSender(Long sender) {
        this.sender = sender;
    }

    public Long getSender() {
        return sender;
    }

    public void setAssignId(Long assignId) {
        this.assignId = assignId;
    }

    public Long getAssignId() {
        return assignId;
    }

    public void setAssignName(String assignName) {
        this.assignName = assignName;
    }

    public String getAssignName() {
        return assignName;
    }

    public void setAssignType(String assignType) {
        this.assignType = assignType;
    }

    public String getAssignType() {
        return assignType;
    }

    public void setFileId(String fileId) {
        this.fileId = fileId;
    }

    public String getFileId() {
        return fileId;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFilePath(String filePath) {
        this.filePath = filePath;
    }

    public String getFilePath() {
        return filePath;
    }

    public void setAssignTime(Date assignTime) {
        this.assignTime = assignTime;
    }

    public Date getAssignTime() {
        return assignTime;
    }

    public void setFileType(String fileType) {
        this.fileType = fileType;
    }

    public String getFileType() {
        return fileType;
    }

    public void setViewStatus(String viewStatus) {
        this.viewStatus = viewStatus;
    }

    public String getViewStatus() {
        return viewStatus;
    }

    public void setLevel(String level) {
        this.level = level;
    }

    public String getLevel() {
        return level;
    }

    public void setDueDate(Date dueDate) {
        this.dueDate = dueDate;
    }

    public Date getDueDate() {
        return dueDate;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getEmail() {
        return email;
    }

    public Integer getOverdueDays() {
        return overdueDays;
    }

    public void setOverdueDays(Integer overdueDays) {
        this.overdueDays = overdueDays;
    }

    public Long getAssignDeptId() {
        return assignDeptId;
    }

    public void setAssignDeptId(Long assignDeptId) {
        this.assignDeptId = assignDeptId;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public Integer getViewCount() {
        return viewCount;
    }

    public void setViewCount(Integer viewCount) {
        this.viewCount = viewCount;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("fileAssignId", getFileAssignId())
                .append("sender", getSender())
                .append("assignId", getAssignId())
                .append("assignName", getAssignName())
                .append("assignType", getAssignType())
                .append("fileId", getFileId())
                .append("fileName", getFileName())
                .append("filePath", getFilePath())
                .append("assignTime", getAssignTime())
                .append("fileType", getFileType())
                .append("viewStatus", getViewStatus())
                .append("level", getLevel())
                .append("dueDate", getDueDate())
                .append("createTime", getCreateTime())
                .append("createBy", getCreateBy())
                .append("updateTime", getUpdateTime())
                .append("updateBy", getUpdateBy())
                .append("remark", getRemark())
                .append("email", getEmail())
                .append("overdueDays", getOverdueDays())
                .append("assignDeptId", getAssignDeptId())
                .append("deptName", getDeptName())
                .append("viewCount", getViewCount())
                .toString();
    }
}
